//
//  ALEmoticonPackageModel.swift
//  键盘-表情处理
//
//  Created by Miaoyang on 16/4/24.
//  Copyright © 2016年 Miaoyang. All rights reserved.
//

import UIKit

class ALEmoticonPackageModel: NSObject {
    
    //MARK:属性
    ///表情包 文件名 名称
    var id:String
    ///表情包 名称
    var group_name_cn:String
    
    /// 表情模型数组,所有表情模型都放一起
    var emoticons: [ALEmoticonModel]
    
    /// 所有页的表情,一页有20个表情
    var pageEmoticons: [[ALEmoticonModel]] = [[ALEmoticonModel]]()
    
 
    
    init(id:String,group_name_cn:String,emoticons:[ALEmoticonModel]) {
        
        self.id = id
        self.group_name_cn = group_name_cn
        self.emoticons = emoticons
        super.init()
    }
    ///打印对象方法
    override var description: String{
        return "表情包模型: id:\(id), group_name_cn:\(group_name_cn), emoticons:\(emoticons)"
    }
    /// 将所有表情拆分成多页, 拆成一页20个模型,会拆出多页
    private func spliteEmoticons() {
        // 计算总页数 = (总数量 + 一页表情数 - 1) / 一页表情数
        let pageCount = (emoticons.count + numberOfPage - 1) / numberOfPage
        
        // 当默认没有表情的时候,生成一页空表情
        if pageCount == 0 { [[0]]
            let pageEmoticon = [ALEmoticonModel]()
            pageEmoticons.append(pageEmoticon)
        }
        
        // 分割每一页 [[20], [20], [20], [20]]
        for i in 0..<pageCount {
            let location = i * numberOfPage
            var length = numberOfPage
            
            // 判断最后一页的是否会超出数组长度,如果超出数组的长度,length需要重新计算
            if location + length > emoticons.count {
                length = emoticons.count - location
            }
            
            let range = NSRange(location: location, length: length)
            
            // 数组分割
            let subEmoticons = (emoticons as NSArray).subarrayWithRange(range) as! [ALEmoticonModel]
            pageEmoticons.append(subEmoticons)
        }
    }
}
